مباديء برمجة الاردوينو و برنامج Blinking LED
درس يشرح مباديء برمجة الاردوينو مع مثال بسيط Blinking LED
بعد تحميل بيئة تطوير الاردوينو و تنصيبه على الحاسوب. يمكنك الان ربط لوحة الاردوينو الى حاسوبك و البدء ببرمجته. واجهة بيئة التطوير في الصورة التالية,
من المهم ان تتأكد من رقم منفذ التخاطب (COM Port) في بيئة البرمجة بعد ربط الاردوينو الى الحاسبة.
الان, لنتعرف على كيفية كتابة برنامج الاردوينو و اجزائه ونبدأ بكتابة برنامج يقوم بتشغيل و اطفاء دايود ضوئي مربوط على الـpin رقم 13. ان لغة البرمجة المستخدمة في بيئة تطوير الاردوينو مماثلة للغة البرمجة ++C. ويقسم البرنامج الى جزئين, الجزء الاول "void setup" ينفذ لمرة واحدة عند تشغيل الاردوينو ثم يبدأ بتنفيذ الايعازات الموجودة داخل "Void Loop" الى ان يتم قطع الطاقة عن المتحكم. يستخدم الجزء الاول "void setup" لتعريف انواع مدخلات و مخرجات الاردوينو, اي تحديد طبيعة عمل كل pin في الاردوينو من ناحية كونه مدخل\مخرج و رقمي او خطي. مثال على ذلك انك تريد الـpin رقم 13 ان يكون مخرج رقمي فيكون الامر pinMode(13, OUTPUT).
انتبه ايضا للأحرف الكبيرة و الصغيرة اثناء كتابة البرنامج ولا تنسى وضع فارزة منقوطة في نهاية كل امر.
ننتقل الان الى الجزء الثاني من البرنامج "void loop". كما ذكرنا سابقاً فأن هذا الجزء من البرنامج سيتم تكراره الى ان يتم قطع الطاقة عن الاردوينو لذلك فإننا سنقوم بكتابة خطوات لتشغيل الـLED فترة من الزمن ثم اطفائه لنفس الفترة و لكون البرنامج يكرر نفسه ذاتيا فإن الـLED لن يتوقف عن الوميض. يتم ربط الـLED الى الاردوينو كما في الصورة التالية
لاحظ في الصورة ان القطب الموجب للـLED مربوط الى الاردوينو pin13, اي اننا نحتاج الى تسليط فولتية موجبة على الـpin13 لتشغيل الـLED. نقوم الان بكتابة امر رفع فولتية الـpin13 وهو digitalWrite(13, HIGH). ثم نقوم بتشغيل مؤقت لمدة ثانية للإبقاء على الفولتية علي الـpin13 لعدم وجود اي امر ثاني نريد اجرائه حاليا. المؤقت في الاردوينو يعمل بوحدة الملي ثانية فلتأخيره ثانية كاملة يكون الامر delay(1000).
نقوم الان بتكرار نفس الخطوات لإطفاء الـLED لكن هذه المرة نقوم بخفض الفولتية على الـpin13 فيكون الامر digitalWrite(13, LOW) و نقوم بتشغيل المؤقت لثانية اخرى لإبقاء الـLED مطفأ قبل اعادة تشغيله فنكتب delay(1000).
الان يمكنك تحميل البرنامج الى الاردوينو وتشغيله.
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}